package com.wande.dataplatform.domain.dto;

import lombok.Data;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import java.io.Serial;
import java.io.Serializable;

/**
 * 查询执行DTO
 *
 * @author wande
 */
@Data
public class QueryExecuteDTO implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 查询名称(可选,用于保存历史)
     */
    private String queryName;

    /**
     * 查询类型: SQL, VISUAL
     */
    @NotBlank(message = "查询类型不能为空")
    private String queryType;

    /**
     * SQL内容
     */
    @NotBlank(message = "SQL内容不能为空")
    private String sqlContent;

    /**
     * 查询配置JSON(可视化查询构建器配置)
     */
    private String queryConfig;

    /**
     * 数据源ID
     */
    @NotNull(message = "数据源ID不能为空")
    private Long datasourceId;

    /**
     * 页码
     */
    private Integer pageNum = 1;

    /**
     * 每页大小
     */
    private Integer pageSize = 20;

    /**
     * 是否保存到历史记录
     */
    private Boolean saveHistory = true;

    /**
     * 项目ID
     */
    private Long projectId;
}
